from flask import session, g
from functools import wraps


# 自定义过滤器，实现人们新闻颜色提示
def do_index_class_filter(index):
    if index == 1:
        return "first"
    elif index == 2:
        return "second"
    elif index == 3:
        return "third"
    else:
        return ""


# 判断用户登录装饰器
# 装饰器是给已经存在的函数提供额外的功能
# 不应该改变原有的函数说明和指向，因此
# 需要wraps修饰函数
def user_login_data(view_func):
    @wraps(view_func)
    def wrapper(*args,**kwargs):

        # 获取到用户编号
        user_id = session.get("user_id")

        # 查询用户对象
        user = None
        if user_id:
            from info.models import User
            # 避免循环导包
            user = User.query.get(user_id)

        # 将用户对象设置到g对象中
        g.user = user

        return view_func(*args,**kwargs)
    return wrapper